// export FirstAttack , WezwanieRadaru ; starting begin DontEnter = true ;
   0: LD_ADDR_EXP 8
   4: PUSH
   5: LD_INT 1
   7: ST_TO_ADDR
// FirstAttack = false ;
   8: LD_ADDR_EXP 1
  12: PUSH
  13: LD_INT 0
  15: ST_TO_ADDR
// LostCheck = false ;
  16: LD_ADDR_EXP 12
  20: PUSH
  21: LD_INT 0
  23: ST_TO_ADDR
// WezwanieRadaru = 0 ;
  24: LD_ADDR_EXP 2
  28: PUSH
  29: LD_INT 0
  31: ST_TO_ADDR
// Center = 1 ;
  32: LD_ADDR_EXP 11
  36: PUSH
  37: LD_INT 1
  39: ST_TO_ADDR
// Ataki = 0 ;
  40: LD_ADDR_EXP 9
  44: PUSH
  45: LD_INT 0
  47: ST_TO_ADDR
// InGameOn ;
  48: CALL_OW 8
// end ;
  52: END
// export Nefarem ; every 0 0$0.5 do
  53: GO 55
  55: DISABLE
// begin uc_side = 4 ;
  56: LD_ADDR_OWVAR 20
  60: PUSH
  61: LD_INT 4
  63: ST_TO_ADDR
// uc_nation = 1 ;
  64: LD_ADDR_OWVAR 21
  68: PUSH
  69: LD_INT 1
  71: ST_TO_ADDR
// Nefarem := CreateCharacter ( Nefarem ) ;
  72: LD_ADDR_EXP 3
  76: PUSH
  77: LD_STRING Nefarem
  79: PPUSH
  80: CALL_OW 34
  84: ST_TO_ADDR
// SetClass ( Nefarem , class_soldier ) ;
  85: LD_EXP 3
  89: PPUSH
  90: LD_INT 1
  92: PPUSH
  93: CALL_OW 336
// PlaceUnitXY ( Nefarem , 92 , 91 , false ) ;
  97: LD_EXP 3
 101: PPUSH
 102: LD_INT 92
 104: PPUSH
 105: LD_INT 91
 107: PPUSH
 108: LD_INT 0
 110: PPUSH
 111: CALL_OW 48
// ComMoveXY ( Nefarem , 86 , 82 ) ;
 115: LD_EXP 3
 119: PPUSH
 120: LD_INT 86
 122: PPUSH
 123: LD_INT 82
 125: PPUSH
 126: CALL_OW 111
// wait ( 0 0$0.8 ) ;
 130: LD_INT 28
 132: PPUSH
 133: CALL_OW 67
// ADdComMoveXY ( Nefarem , 87 , 77 ) ;
 137: LD_EXP 3
 141: PPUSH
 142: LD_INT 87
 144: PPUSH
 145: LD_INT 77
 147: PPUSH
 148: CALL_OW 171
// wait ( 0 0$0.8 ) ;
 152: LD_INT 28
 154: PPUSH
 155: CALL_OW 67
// AddComMoveXY ( Nefarem , 81 , 66 ) ;
 159: LD_EXP 3
 163: PPUSH
 164: LD_INT 81
 166: PPUSH
 167: LD_INT 66
 169: PPUSH
 170: CALL_OW 171
// wait ( 0 0$0.8 ) ;
 174: LD_INT 28
 176: PPUSH
 177: CALL_OW 67
// AddComMoveXY ( Nefarem , 67 , 43 ) ;
 181: LD_EXP 3
 185: PPUSH
 186: LD_INT 67
 188: PPUSH
 189: LD_INT 43
 191: PPUSH
 192: CALL_OW 171
// end ;
 196: END
// every 0 0$0.5 trigger FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] , [ f_inarea , ExplosionStart ] ] ) >= 1 do
 197: LD_INT 22
 199: PUSH
 200: LD_INT 1
 202: PUSH
 203: EMPTY
 204: LIST
 205: LIST
 206: PUSH
 207: LD_INT 21
 209: PUSH
 210: LD_INT 2
 212: PUSH
 213: EMPTY
 214: LIST
 215: LIST
 216: PUSH
 217: LD_INT 33
 219: PUSH
 220: LD_INT 3
 222: PUSH
 223: EMPTY
 224: LIST
 225: LIST
 226: PUSH
 227: LD_INT 95
 229: PUSH
 230: LD_INT 4
 232: PUSH
 233: EMPTY
 234: LIST
 235: LIST
 236: PUSH
 237: EMPTY
 238: LIST
 239: LIST
 240: LIST
 241: LIST
 242: PPUSH
 243: CALL_OW 69
 247: PUSH
 248: LD_INT 1
 250: GREATEREQUAL
 251: IFFALSE 387
 253: GO 255
 255: DISABLE
// begin Center = 0 ;
 256: LD_ADDR_EXP 11
 260: PUSH
 261: LD_INT 0
 263: ST_TO_ADDR
// CenterOnXY ( 69 , 39 ) ;
 264: LD_INT 69
 266: PPUSH
 267: LD_INT 39
 269: PPUSH
 270: CALL_OW 84
// MineExplosion ( 69 , 39 , 1000 ) ;
 274: LD_INT 69
 276: PPUSH
 277: LD_INT 39
 279: PPUSH
 280: LD_INT 1000
 282: PPUSH
 283: CALL_OW 453
// ComHold ( FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] ] ) ) ;
 287: LD_INT 22
 289: PUSH
 290: LD_INT 1
 292: PUSH
 293: EMPTY
 294: LIST
 295: LIST
 296: PUSH
 297: LD_INT 21
 299: PUSH
 300: LD_INT 2
 302: PUSH
 303: EMPTY
 304: LIST
 305: LIST
 306: PUSH
 307: LD_INT 33
 309: PUSH
 310: LD_INT 3
 312: PUSH
 313: EMPTY
 314: LIST
 315: LIST
 316: PUSH
 317: EMPTY
 318: LIST
 319: LIST
 320: LIST
 321: PPUSH
 322: CALL_OW 69
 326: PPUSH
 327: CALL_OW 140
// wait ( 0 0$0.5 ) ;
 331: LD_INT 18
 333: PPUSH
 334: CALL_OW 67
// MineExplosion ( 69 , 39 , 1000 ) ;
 338: LD_INT 69
 340: PPUSH
 341: LD_INT 39
 343: PPUSH
 344: LD_INT 1000
 346: PPUSH
 347: CALL_OW 453
// Say ( Nefarem , B1n ) ;
 351: LD_EXP 3
 355: PPUSH
 356: LD_STRING B1n
 358: PPUSH
 359: CALL_OW 88
// InGameOff ;
 363: CALL_OW 9
// LostCheck = true ;
 367: LD_ADDR_EXP 12
 371: PUSH
 372: LD_INT 1
 374: ST_TO_ADDR
// FirstAttack = true ;
 375: LD_ADDR_EXP 1
 379: PUSH
 380: LD_INT 1
 382: ST_TO_ADDR
// Atakowanie1 ;
 383: CALL 2738 0 0
// end ;
 387: END
// every 0 0$01 trigger FilterAllUnits ( [ f_side , 2 ] ) = 0 and FirstAttack = true do var human ;
 388: LD_INT 22
 390: PUSH
 391: LD_INT 2
 393: PUSH
 394: EMPTY
 395: LIST
 396: LIST
 397: PPUSH
 398: CALL_OW 69
 402: PUSH
 403: LD_INT 0
 405: EQUAL
 406: PUSH
 407: LD_EXP 1
 411: PUSH
 412: LD_INT 1
 414: EQUAL
 415: AND
 416: IFFALSE 545
 418: GO 420
 420: DISABLE
 421: LD_INT 0
 423: PPUSH
// begin human = FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_human ] ] ) ;
 424: LD_ADDR_VAR 0 1
 428: PUSH
 429: LD_INT 22
 431: PUSH
 432: LD_INT 4
 434: PUSH
 435: EMPTY
 436: LIST
 437: LIST
 438: PUSH
 439: LD_INT 21
 441: PUSH
 442: LD_INT 1
 444: PUSH
 445: EMPTY
 446: LIST
 447: LIST
 448: PUSH
 449: EMPTY
 450: LIST
 451: LIST
 452: PPUSH
 453: CALL_OW 69
 457: ST_TO_ADDR
// InGameOn ;
 458: CALL_OW 8
// Say ( Nefarem , B2n ) ;
 462: LD_EXP 3
 466: PPUSH
 467: LD_STRING B2n
 469: PPUSH
 470: CALL_OW 88
// Say ( human [ 2 ] , B3z ) ;
 474: LD_VAR 0 1
 478: PUSH
 479: LD_INT 2
 481: ARRAY
 482: PPUSH
 483: LD_STRING B3z
 485: PPUSH
 486: CALL_OW 88
// Say ( Nefarem , B4n ) ;
 490: LD_EXP 3
 494: PPUSH
 495: LD_STRING B4n
 497: PPUSH
 498: CALL_OW 88
// Say ( Nefarem , B5n ) ;
 502: LD_EXP 3
 506: PPUSH
 507: LD_STRING B5n
 509: PPUSH
 510: CALL_OW 88
// InGameOff ;
 514: CALL_OW 9
// ChangeMissionObjectives ( M1 ) ;
 518: LD_STRING M1
 520: PPUSH
 521: CALL_OW 337
// SaveForQuickRestart ;
 525: CALL_OW 22
// FirstAttack = false ;
 529: LD_ADDR_EXP 1
 533: PUSH
 534: LD_INT 0
 536: ST_TO_ADDR
// Ataki = 1 ;
 537: LD_ADDR_EXP 9
 541: PUSH
 542: LD_INT 1
 544: ST_TO_ADDR
// end ;
 545: PPOPN 1
 547: END
// every 2 2$15 trigger Ataki = 2 do
 548: LD_EXP 9
 552: PUSH
 553: LD_INT 2
 555: EQUAL
 556: IFFALSE 570
 558: GO 560
 560: DISABLE
// begin enable ;
 561: ENABLE
// Atakowanie1 ;
 562: CALL 2738 0 0
// Atakowanie2 ;
 566: CALL 2975 0 0
// end ;
 570: END
// every 0 0$01 trigger IsInArea ( Nefarem , CallHelp ) and Ataki = 1 do
 571: LD_EXP 3
 575: PPUSH
 576: LD_INT 16
 578: PPUSH
 579: CALL_OW 308
 583: PUSH
 584: LD_EXP 9
 588: PUSH
 589: LD_INT 1
 591: EQUAL
 592: AND
 593: IFFALSE 689
 595: GO 597
 597: DISABLE
// begin DialogueOn ;
 598: CALL_OW 6
// SayRadio ( Nefarem , C1n ) ;
 602: LD_EXP 3
 606: PPUSH
 607: LD_STRING C1n
 609: PPUSH
 610: CALL_OW 94
// SayRadio ( GEN , C2g ) ;
 614: LD_EXP 4
 618: PPUSH
 619: LD_STRING C2g
 621: PPUSH
 622: CALL_OW 94
// SayRadio ( Nefarem , C3n ) ;
 626: LD_EXP 3
 630: PPUSH
 631: LD_STRING C3n
 633: PPUSH
 634: CALL_OW 94
// SayRadio ( GEN , C4g ) ;
 638: LD_EXP 4
 642: PPUSH
 643: LD_STRING C4g
 645: PPUSH
 646: CALL_OW 94
// SayRadio ( Nefarem , C5n ) ;
 650: LD_EXP 3
 654: PPUSH
 655: LD_STRING C5n
 657: PPUSH
 658: CALL_OW 94
// DialogueOff ;
 662: CALL_OW 7
// ChangeMissionObjectives ( M2 ) ;
 666: LD_STRING M2
 668: PPUSH
 669: CALL_OW 337
// Ataki = 2 ;
 673: LD_ADDR_EXP 9
 677: PUSH
 678: LD_INT 2
 680: ST_TO_ADDR
// WezwanieRadaru = 1 ;
 681: LD_ADDR_EXP 2
 685: PUSH
 686: LD_INT 1
 688: ST_TO_ADDR
// end ;
 689: END
// every 9 9$00 trigger WezwanieRadaru = 1 do
 690: LD_EXP 2
 694: PUSH
 695: LD_INT 1
 697: EQUAL
 698: IFFALSE 707
 700: GO 702
 702: DISABLE
// begin RadarMan ;
 703: CALL 2228 0 0
// end ;
 707: END
// every 0 0$01 trigger IsInArea ( saperMAN , ExplosionStart ) and FilterAllUnits ( [ [ f_side , 2 ] , [ f_or , [ [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ] ) = 0 do
 708: LD_EXP 5
 712: PPUSH
 713: LD_INT 4
 715: PPUSH
 716: CALL_OW 308
 720: PUSH
 721: LD_INT 22
 723: PUSH
 724: LD_INT 2
 726: PUSH
 727: EMPTY
 728: LIST
 729: LIST
 730: PUSH
 731: LD_INT 2
 733: PUSH
 734: LD_INT 21
 736: PUSH
 737: LD_INT 2
 739: PUSH
 740: EMPTY
 741: LIST
 742: LIST
 743: PUSH
 744: LD_INT 21
 746: PUSH
 747: LD_INT 1
 749: PUSH
 750: EMPTY
 751: LIST
 752: LIST
 753: PUSH
 754: EMPTY
 755: LIST
 756: LIST
 757: PUSH
 758: EMPTY
 759: LIST
 760: LIST
 761: PUSH
 762: EMPTY
 763: LIST
 764: LIST
 765: PPUSH
 766: CALL_OW 69
 770: PUSH
 771: LD_INT 0
 773: EQUAL
 774: AND
 775: IFFALSE 1173
 777: GO 779
 779: DISABLE
// begin ComMoveXY ( Nefarem , 69 , 39 ) ;
 780: LD_EXP 3
 784: PPUSH
 785: LD_INT 69
 787: PPUSH
 788: LD_INT 39
 790: PPUSH
 791: CALL_OW 111
// ComExitVehicle ( saperMAN ) ;
 795: LD_EXP 5
 799: PPUSH
 800: CALL_OW 121
// wait ( 0 0$05 ) ;
 804: LD_INT 175
 806: PPUSH
 807: CALL_OW 67
// DialogueON ;
 811: CALL_OW 6
// Say ( saperMAN , D1 ) ;
 815: LD_EXP 5
 819: PPUSH
 820: LD_STRING D1
 822: PPUSH
 823: CALL_OW 88
// Say ( Nefarem , D2 ) ;
 827: LD_EXP 3
 831: PPUSH
 832: LD_STRING D2
 834: PPUSH
 835: CALL_OW 88
// Say ( saperMAN , D3 ) ;
 839: LD_EXP 5
 843: PPUSH
 844: LD_STRING D3
 846: PPUSH
 847: CALL_OW 88
// DialogueOFF ;
 851: CALL_OW 7
// ComCrawl ( saperMAN ) ;
 855: LD_EXP 5
 859: PPUSH
 860: CALL_OW 137
// AddComMoveXY ( saperMAN , 63 , 27 ) ;
 864: LD_EXP 5
 868: PPUSH
 869: LD_INT 63
 871: PPUSH
 872: LD_INT 27
 874: PPUSH
 875: CALL_OW 171
// wait ( 0 0$30 ) ;
 879: LD_INT 1050
 881: PPUSH
 882: CALL_OW 67
// AddComMoveXY ( saperMAN , 62 , 18 ) ;
 886: LD_EXP 5
 890: PPUSH
 891: LD_INT 62
 893: PPUSH
 894: LD_INT 18
 896: PPUSH
 897: CALL_OW 171
// wait ( 0 0$30 ) ;
 901: LD_INT 1050
 903: PPUSH
 904: CALL_OW 67
// AddComMoveXY ( saperMAN , 59 , 11 ) ;
 908: LD_EXP 5
 912: PPUSH
 913: LD_INT 59
 915: PPUSH
 916: LD_INT 11
 918: PPUSH
 919: CALL_OW 171
// wait ( 0 0$30 ) ;
 923: LD_INT 1050
 925: PPUSH
 926: CALL_OW 67
// AddComMoveXY ( saperMAN , 55 , 4 ) ;
 930: LD_EXP 5
 934: PPUSH
 935: LD_INT 55
 937: PPUSH
 938: LD_INT 4
 940: PPUSH
 941: CALL_OW 171
// wait ( 0 0$30 ) ;
 945: LD_INT 1050
 947: PPUSH
 948: CALL_OW 67
// AddComMoveXY ( saperMAN , 54 , 8 ) ;
 952: LD_EXP 5
 956: PPUSH
 957: LD_INT 54
 959: PPUSH
 960: LD_INT 8
 962: PPUSH
 963: CALL_OW 171
// wait ( 0 0$30 ) ;
 967: LD_INT 1050
 969: PPUSH
 970: CALL_OW 67
// AddComMoveXY ( saperMAN , 57 , 15 ) ;
 974: LD_EXP 5
 978: PPUSH
 979: LD_INT 57
 981: PPUSH
 982: LD_INT 15
 984: PPUSH
 985: CALL_OW 171
// wait ( 0 0$30 ) ;
 989: LD_INT 1050
 991: PPUSH
 992: CALL_OW 67
// AddComMoveXY ( saperMAN , 61 , 24 ) ;
 996: LD_EXP 5
1000: PPUSH
1001: LD_INT 61
1003: PPUSH
1004: LD_INT 24
1006: PPUSH
1007: CALL_OW 171
// wait ( 0 0$30 ) ;
1011: LD_INT 1050
1013: PPUSH
1014: CALL_OW 67
// AddComWalk ( saperMAN ) ;
1018: LD_EXP 5
1022: PPUSH
1023: CALL_OW 198
// AddComMoveXY ( saperMAN , 68 , 39 ) ;
1027: LD_EXP 5
1031: PPUSH
1032: LD_INT 68
1034: PPUSH
1035: LD_INT 39
1037: PPUSH
1038: CALL_OW 171
// wait ( 0 0$10 ) ;
1042: LD_INT 350
1044: PPUSH
1045: CALL_OW 67
// Say ( saperMAN , E1 ) ;
1049: LD_EXP 5
1053: PPUSH
1054: LD_STRING E1
1056: PPUSH
1057: CALL_OW 88
// Say ( Nefarem , E2 ) ;
1061: LD_EXP 3
1065: PPUSH
1066: LD_STRING E2
1068: PPUSH
1069: CALL_OW 88
// Say ( saperMAN , E3 ) ;
1073: LD_EXP 5
1077: PPUSH
1078: LD_STRING E3
1080: PPUSH
1081: CALL_OW 88
// Say ( Nefarem , E4 ) ;
1085: LD_EXP 3
1089: PPUSH
1090: LD_STRING E4
1092: PPUSH
1093: CALL_OW 88
// DontEnter = false ;
1097: LD_ADDR_EXP 8
1101: PUSH
1102: LD_INT 0
1104: ST_TO_ADDR
// ComMoveXY ( saperMAN , 95 , 92 ) ;
1105: LD_EXP 5
1109: PPUSH
1110: LD_INT 95
1112: PPUSH
1113: LD_INT 92
1115: PPUSH
1116: CALL_OW 111
// ChangeMissionObjectives ( M3 ) ;
1120: LD_STRING M3
1122: PPUSH
1123: CALL_OW 337
// SetAreaMapShow ( EndArea , 1 ) ;
1127: LD_INT 15
1129: PPUSH
1130: LD_INT 1
1132: PPUSH
1133: CALL_OW 424
// SetSide ( FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_vehicle ] ] ) , 4 ) ;
1137: LD_INT 22
1139: PUSH
1140: LD_INT 1
1142: PUSH
1143: EMPTY
1144: LIST
1145: LIST
1146: PUSH
1147: LD_INT 21
1149: PUSH
1150: LD_INT 2
1152: PUSH
1153: EMPTY
1154: LIST
1155: LIST
1156: PUSH
1157: EMPTY
1158: LIST
1159: LIST
1160: PPUSH
1161: CALL_OW 69
1165: PPUSH
1166: LD_INT 4
1168: PPUSH
1169: CALL_OW 235
// end ;
1173: END
// every 0 0$01 trigger FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_human ] , [ f_inarea , EndArea ] ] ) >= 1 do
1174: LD_INT 22
1176: PUSH
1177: LD_INT 4
1179: PUSH
1180: EMPTY
1181: LIST
1182: LIST
1183: PUSH
1184: LD_INT 21
1186: PUSH
1187: LD_INT 1
1189: PUSH
1190: EMPTY
1191: LIST
1192: LIST
1193: PUSH
1194: LD_INT 95
1196: PUSH
1197: LD_INT 15
1199: PUSH
1200: EMPTY
1201: LIST
1202: LIST
1203: PUSH
1204: EMPTY
1205: LIST
1206: LIST
1207: LIST
1208: PPUSH
1209: CALL_OW 69
1213: PUSH
1214: LD_INT 1
1216: GREATEREQUAL
1217: IFFALSE 1242
1219: GO 1221
1221: DISABLE
// begin case query ( part1 ) of 1 :
1222: LD_STRING part1
1224: PPUSH
1225: CALL_OW 97
1229: PUSH
1230: LD_INT 1
1232: DOUBLE
1233: EQUAL
1234: IFTRUE 1238
1236: GO 1241
1238: POP
// begin end ; end ;
1239: GO 1242
1241: POP
// end ; end_of_file
1242: END
// export GEN ; every 0 0$01 do var l , un , ve , LevelS ;
1243: GO 1245
1245: DISABLE
1246: LD_INT 0
1248: PPUSH
1249: PPUSH
1250: PPUSH
1251: PPUSH
// begin hc_basic_skills = [ Rand ( 0 , 2 ) , Rand ( 0 , 2 ) , Rand ( 0 , 2 ) , Rand ( 0 , 2 ) ] ;
1252: LD_ADDR_OWVAR 30
1256: PUSH
1257: LD_INT 0
1259: PPUSH
1260: LD_INT 2
1262: PPUSH
1263: CALL_OW 12
1267: PUSH
1268: LD_INT 0
1270: PPUSH
1271: LD_INT 2
1273: PPUSH
1274: CALL_OW 12
1278: PUSH
1279: LD_INT 0
1281: PPUSH
1282: LD_INT 2
1284: PPUSH
1285: CALL_OW 12
1289: PUSH
1290: LD_INT 0
1292: PPUSH
1293: LD_INT 2
1295: PPUSH
1296: CALL_OW 12
1300: PUSH
1301: EMPTY
1302: LIST
1303: LIST
1304: LIST
1305: LIST
1306: ST_TO_ADDR
// l = 0 ;
1307: LD_ADDR_VAR 0 1
1311: PUSH
1312: LD_INT 0
1314: ST_TO_ADDR
// repeat if l = 4 then
1315: LD_VAR 0 1
1319: PUSH
1320: LD_INT 4
1322: EQUAL
1323: IFFALSE 1335
// begin hc_class = 3 ;
1325: LD_ADDR_OWVAR 28
1329: PUSH
1330: LD_INT 3
1332: ST_TO_ADDR
// end else
1333: GO 1363
// if l = 5 then
1335: LD_VAR 0 1
1339: PUSH
1340: LD_INT 5
1342: EQUAL
1343: IFFALSE 1355
// begin hc_class = 4 ;
1345: LD_ADDR_OWVAR 28
1349: PUSH
1350: LD_INT 4
1352: ST_TO_ADDR
// end else
1353: GO 1363
// begin hc_class = 1 ;
1355: LD_ADDR_OWVAR 28
1359: PUSH
1360: LD_INT 1
1362: ST_TO_ADDR
// end ; hc_name =  ;
1363: LD_ADDR_OWVAR 26
1367: PUSH
1368: LD_STRING 
1370: ST_TO_ADDR
// uc_side = 4 ;
1371: LD_ADDR_OWVAR 20
1375: PUSH
1376: LD_INT 4
1378: ST_TO_ADDR
// uc_nation = 1 ;
1379: LD_ADDR_OWVAR 21
1383: PUSH
1384: LD_INT 1
1386: ST_TO_ADDR
// hc_gallery =  ;
1387: LD_ADDR_OWVAR 33
1391: PUSH
1392: LD_STRING 
1394: ST_TO_ADDR
// hc_sex = sex_male ;
1395: LD_ADDR_OWVAR 27
1399: PUSH
1400: LD_INT 1
1402: ST_TO_ADDR
// if l = 4 then
1403: LD_VAR 0 1
1407: PUSH
1408: LD_INT 4
1410: EQUAL
1411: IFFALSE 1470
// begin hc_class = 3 ;
1413: LD_ADDR_OWVAR 28
1417: PUSH
1418: LD_INT 3
1420: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , 8 , Rand ( 0 , 5 ) ] ;
1421: LD_ADDR_OWVAR 31
1425: PUSH
1426: LD_INT 0
1428: PPUSH
1429: LD_INT 5
1431: PPUSH
1432: CALL_OW 12
1436: PUSH
1437: LD_INT 0
1439: PPUSH
1440: LD_INT 5
1442: PPUSH
1443: CALL_OW 12
1447: PUSH
1448: LD_INT 8
1450: PUSH
1451: LD_INT 0
1453: PPUSH
1454: LD_INT 5
1456: PPUSH
1457: CALL_OW 12
1461: PUSH
1462: EMPTY
1463: LIST
1464: LIST
1465: LIST
1466: LIST
1467: ST_TO_ADDR
// end else
1468: GO 1604
// if l = 5 then
1470: LD_VAR 0 1
1474: PUSH
1475: LD_INT 5
1477: EQUAL
1478: IFFALSE 1537
// begin hc_class = 4 ;
1480: LD_ADDR_OWVAR 28
1484: PUSH
1485: LD_INT 4
1487: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , 7 ] ;
1488: LD_ADDR_OWVAR 31
1492: PUSH
1493: LD_INT 0
1495: PPUSH
1496: LD_INT 5
1498: PPUSH
1499: CALL_OW 12
1503: PUSH
1504: LD_INT 0
1506: PPUSH
1507: LD_INT 5
1509: PPUSH
1510: CALL_OW 12
1514: PUSH
1515: LD_INT 0
1517: PPUSH
1518: LD_INT 5
1520: PPUSH
1521: CALL_OW 12
1525: PUSH
1526: LD_INT 7
1528: PUSH
1529: EMPTY
1530: LIST
1531: LIST
1532: LIST
1533: LIST
1534: ST_TO_ADDR
// end else
1535: GO 1604
// begin hc_class = 1 ;
1537: LD_ADDR_OWVAR 28
1541: PUSH
1542: LD_INT 1
1544: ST_TO_ADDR
// hc_skills = [ 7 - Rand ( 0 , 1 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
1545: LD_ADDR_OWVAR 31
1549: PUSH
1550: LD_INT 7
1552: PUSH
1553: LD_INT 0
1555: PPUSH
1556: LD_INT 1
1558: PPUSH
1559: CALL_OW 12
1563: MINUS
1564: PUSH
1565: LD_INT 0
1567: PPUSH
1568: LD_INT 5
1570: PPUSH
1571: CALL_OW 12
1575: PUSH
1576: LD_INT 0
1578: PPUSH
1579: LD_INT 5
1581: PPUSH
1582: CALL_OW 12
1586: PUSH
1587: LD_INT 0
1589: PPUSH
1590: LD_INT 5
1592: PPUSH
1593: CALL_OW 12
1597: PUSH
1598: EMPTY
1599: LIST
1600: LIST
1601: LIST
1602: LIST
1603: ST_TO_ADDR
// end ; un = CreateHuman ;
1604: LD_ADDR_VAR 0 2
1608: PUSH
1609: CALL_OW 44
1613: ST_TO_ADDR
// PlaceUnitArea ( un , HumanSpawnRight , false ) ;
1614: LD_VAR 0 2
1618: PPUSH
1619: LD_INT 2
1621: PPUSH
1622: LD_INT 0
1624: PPUSH
1625: CALL_OW 49
// l = l + 1 ;
1629: LD_ADDR_VAR 0 1
1633: PUSH
1634: LD_VAR 0 1
1638: PUSH
1639: LD_INT 1
1641: PLUS
1642: ST_TO_ADDR
// ComMoveXY ( un , 96 , 85 ) ;
1643: LD_VAR 0 2
1647: PPUSH
1648: LD_INT 96
1650: PPUSH
1651: LD_INT 85
1653: PPUSH
1654: CALL_OW 111
// wait ( 0 0$0.8 ) ;
1658: LD_INT 28
1660: PPUSH
1661: CALL_OW 67
// ADdComMoveXY ( un , 92 , 75 ) ;
1665: LD_VAR 0 2
1669: PPUSH
1670: LD_INT 92
1672: PPUSH
1673: LD_INT 75
1675: PPUSH
1676: CALL_OW 171
// wait ( 0 0$0.8 ) ;
1680: LD_INT 28
1682: PPUSH
1683: CALL_OW 67
// AddComMoveXY ( un , 87 , 66 ) ;
1687: LD_VAR 0 2
1691: PPUSH
1692: LD_INT 87
1694: PPUSH
1695: LD_INT 66
1697: PPUSH
1698: CALL_OW 171
// wait ( 0 0$0.8 ) ;
1702: LD_INT 28
1704: PPUSH
1705: CALL_OW 67
// AddComMoveXY ( un , 75 , 43 ) ;
1709: LD_VAR 0 2
1713: PPUSH
1714: LD_INT 75
1716: PPUSH
1717: LD_INT 43
1719: PPUSH
1720: CALL_OW 171
// wait ( 0 0$02 ) ;
1724: LD_INT 70
1726: PPUSH
1727: CALL_OW 67
// until l = 6 ;
1731: LD_VAR 0 1
1735: PUSH
1736: LD_INT 6
1738: EQUAL
1739: IFFALSE 1315
// end ;
1741: PPOPN 4
1743: END
// every 0 0$01 do var x , un , ve ;
1744: GO 1746
1746: DISABLE
1747: LD_INT 0
1749: PPUSH
1750: PPUSH
1751: PPUSH
// begin x = 0 ;
1752: LD_ADDR_VAR 0 1
1756: PUSH
1757: LD_INT 0
1759: ST_TO_ADDR
// repeat hc_class = 1 ;
1760: LD_ADDR_OWVAR 28
1764: PUSH
1765: LD_INT 1
1767: ST_TO_ADDR
// hc_name =  ;
1768: LD_ADDR_OWVAR 26
1772: PUSH
1773: LD_STRING 
1775: ST_TO_ADDR
// uc_side = 4 ;
1776: LD_ADDR_OWVAR 20
1780: PUSH
1781: LD_INT 4
1783: ST_TO_ADDR
// uc_nation = 1 ;
1784: LD_ADDR_OWVAR 21
1788: PUSH
1789: LD_INT 1
1791: ST_TO_ADDR
// hc_gallery =  ;
1792: LD_ADDR_OWVAR 33
1796: PUSH
1797: LD_STRING 
1799: ST_TO_ADDR
// hc_sex = sex_male ;
1800: LD_ADDR_OWVAR 27
1804: PUSH
1805: LD_INT 1
1807: ST_TO_ADDR
// hc_skills = [ 7 - Rand ( 0 , 1 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
1808: LD_ADDR_OWVAR 31
1812: PUSH
1813: LD_INT 7
1815: PUSH
1816: LD_INT 0
1818: PPUSH
1819: LD_INT 1
1821: PPUSH
1822: CALL_OW 12
1826: MINUS
1827: PUSH
1828: LD_INT 0
1830: PPUSH
1831: LD_INT 5
1833: PPUSH
1834: CALL_OW 12
1838: PUSH
1839: LD_INT 0
1841: PPUSH
1842: LD_INT 5
1844: PPUSH
1845: CALL_OW 12
1849: PUSH
1850: LD_INT 0
1852: PPUSH
1853: LD_INT 5
1855: PPUSH
1856: CALL_OW 12
1860: PUSH
1861: EMPTY
1862: LIST
1863: LIST
1864: LIST
1865: LIST
1866: ST_TO_ADDR
// un = CreateHuman ;
1867: LD_ADDR_VAR 0 2
1871: PUSH
1872: CALL_OW 44
1876: ST_TO_ADDR
// PlaceUnitArea ( un , HumanSpawnLeft , false ) ;
1877: LD_VAR 0 2
1881: PPUSH
1882: LD_INT 3
1884: PPUSH
1885: LD_INT 0
1887: PPUSH
1888: CALL_OW 49
// x = x + 1 ;
1892: LD_ADDR_VAR 0 1
1896: PUSH
1897: LD_VAR 0 1
1901: PUSH
1902: LD_INT 1
1904: PLUS
1905: ST_TO_ADDR
// ComMoveXY ( un , 89 , 84 ) ;
1906: LD_VAR 0 2
1910: PPUSH
1911: LD_INT 89
1913: PPUSH
1914: LD_INT 84
1916: PPUSH
1917: CALL_OW 111
// wait ( 0 0$0.8 ) ;
1921: LD_INT 28
1923: PPUSH
1924: CALL_OW 67
// ADdComMoveXY ( un , 86 , 75 ) ;
1928: LD_VAR 0 2
1932: PPUSH
1933: LD_INT 86
1935: PPUSH
1936: LD_INT 75
1938: PPUSH
1939: CALL_OW 171
// wait ( 0 0$0.8 ) ;
1943: LD_INT 28
1945: PPUSH
1946: CALL_OW 67
// AddComMoveXY ( un , 82 , 67 ) ;
1950: LD_VAR 0 2
1954: PPUSH
1955: LD_INT 82
1957: PPUSH
1958: LD_INT 67
1960: PPUSH
1961: CALL_OW 171
// wait ( 0 0$0.8 ) ;
1965: LD_INT 28
1967: PPUSH
1968: CALL_OW 67
// AddComMoveXY ( un , 67 , 43 ) ;
1972: LD_VAR 0 2
1976: PPUSH
1977: LD_INT 67
1979: PPUSH
1980: LD_INT 43
1982: PPUSH
1983: CALL_OW 171
// wait ( 0 0$02 ) ;
1987: LD_INT 70
1989: PPUSH
1990: CALL_OW 67
// until x = 3 ;
1994: LD_VAR 0 1
1998: PUSH
1999: LD_INT 3
2001: EQUAL
2002: IFFALSE 1760
// end ;
2004: PPOPN 3
2006: END
// every 0 0$01 do var y , un , ve ;
2007: GO 2009
2009: DISABLE
2010: LD_INT 0
2012: PPUSH
2013: PPUSH
2014: PPUSH
// begin y = 0 ;
2015: LD_ADDR_VAR 0 1
2019: PUSH
2020: LD_INT 0
2022: ST_TO_ADDR
// repeat uc_side = 1 ;
2023: LD_ADDR_OWVAR 20
2027: PUSH
2028: LD_INT 1
2030: ST_TO_ADDR
// vc_chassis = us_heavy_tracked ;
2031: LD_ADDR_OWVAR 37
2035: PUSH
2036: LD_INT 4
2038: ST_TO_ADDR
// vc_weapon = us_double_gun ;
2039: LD_ADDR_OWVAR 40
2043: PUSH
2044: LD_INT 5
2046: ST_TO_ADDR
// vc_engine = engine_combustion ;
2047: LD_ADDR_OWVAR 39
2051: PUSH
2052: LD_INT 1
2054: ST_TO_ADDR
// vc_control = control_computer ;
2055: LD_ADDR_OWVAR 38
2059: PUSH
2060: LD_INT 3
2062: ST_TO_ADDR
// ve = CreateVehicle ;
2063: LD_ADDR_VAR 0 3
2067: PUSH
2068: CALL_OW 45
2072: ST_TO_ADDR
// PlaceUnitArea ( ve , vehiclesSpawn , false ) ;
2073: LD_VAR 0 3
2077: PPUSH
2078: LD_INT 1
2080: PPUSH
2081: LD_INT 0
2083: PPUSH
2084: CALL_OW 49
// ComMoveXY ( ve , 92 , 81 ) ;
2088: LD_VAR 0 3
2092: PPUSH
2093: LD_INT 92
2095: PPUSH
2096: LD_INT 81
2098: PPUSH
2099: CALL_OW 111
// wait ( 0 0$02 ) ;
2103: LD_INT 70
2105: PPUSH
2106: CALL_OW 67
// AddComMoveXY ( ve , 86 , 69 ) ;
2110: LD_VAR 0 3
2114: PPUSH
2115: LD_INT 86
2117: PPUSH
2118: LD_INT 69
2120: PPUSH
2121: CALL_OW 171
// wait ( 0 0$02 ) ;
2125: LD_INT 70
2127: PPUSH
2128: CALL_OW 67
// AddComMoveXY ( ve , 80 , 59 ) ;
2132: LD_VAR 0 3
2136: PPUSH
2137: LD_INT 80
2139: PPUSH
2140: LD_INT 59
2142: PPUSH
2143: CALL_OW 171
// wait ( 0 0$02 ) ;
2147: LD_INT 70
2149: PPUSH
2150: CALL_OW 67
// AddComMoveXY ( ve , 73 , 46 ) ;
2154: LD_VAR 0 3
2158: PPUSH
2159: LD_INT 73
2161: PPUSH
2162: LD_INT 46
2164: PPUSH
2165: CALL_OW 171
// wait ( 0 0$02 ) ;
2169: LD_INT 70
2171: PPUSH
2172: CALL_OW 67
// if y = 0 then
2176: LD_VAR 0 1
2180: PUSH
2181: LD_INT 0
2183: EQUAL
2184: IFFALSE 2201
// begin AddComMoveXY ( ve , 68 , 38 ) end ;
2186: LD_VAR 0 3
2190: PPUSH
2191: LD_INT 68
2193: PPUSH
2194: LD_INT 38
2196: PPUSH
2197: CALL_OW 171
// y = y + 1 ;
2201: LD_ADDR_VAR 0 1
2205: PUSH
2206: LD_VAR 0 1
2210: PUSH
2211: LD_INT 1
2213: PLUS
2214: ST_TO_ADDR
// until y = 5 ;
2215: LD_VAR 0 1
2219: PUSH
2220: LD_INT 5
2222: EQUAL
2223: IFFALSE 2023
// end ;
2225: PPOPN 3
2227: END
// export saperMAN ; export function RadarMan ; var ve ; begin
2228: LD_INT 0
2230: PPUSH
2231: PPUSH
// uc_side = 1 ;
2232: LD_ADDR_OWVAR 20
2236: PUSH
2237: LD_INT 1
2239: ST_TO_ADDR
// vc_chassis = us_medium_wheeled ;
2240: LD_ADDR_OWVAR 37
2244: PUSH
2245: LD_INT 2
2247: ST_TO_ADDR
// vc_weapon = us_radar ;
2248: LD_ADDR_OWVAR 40
2252: PUSH
2253: LD_INT 11
2255: ST_TO_ADDR
// vc_engine = engine_combustion ;
2256: LD_ADDR_OWVAR 39
2260: PUSH
2261: LD_INT 1
2263: ST_TO_ADDR
// vc_control = control_manual ;
2264: LD_ADDR_OWVAR 38
2268: PUSH
2269: LD_INT 1
2271: ST_TO_ADDR
// ve = CreateVehicle ;
2272: LD_ADDR_VAR 0 2
2276: PUSH
2277: CALL_OW 45
2281: ST_TO_ADDR
// PlaceUnitArea ( ve , vehiclesSpawn , false ) ;
2282: LD_VAR 0 2
2286: PPUSH
2287: LD_INT 1
2289: PPUSH
2290: LD_INT 0
2292: PPUSH
2293: CALL_OW 49
// hc_class = 1 ;
2297: LD_ADDR_OWVAR 28
2301: PUSH
2302: LD_INT 1
2304: ST_TO_ADDR
// hc_name =  ;
2305: LD_ADDR_OWVAR 26
2309: PUSH
2310: LD_STRING 
2312: ST_TO_ADDR
// uc_side = 1 ;
2313: LD_ADDR_OWVAR 20
2317: PUSH
2318: LD_INT 1
2320: ST_TO_ADDR
// uc_nation = 1 ;
2321: LD_ADDR_OWVAR 21
2325: PUSH
2326: LD_INT 1
2328: ST_TO_ADDR
// hc_gallery =  ;
2329: LD_ADDR_OWVAR 33
2333: PUSH
2334: LD_STRING 
2336: ST_TO_ADDR
// hc_sex = sex_male ;
2337: LD_ADDR_OWVAR 27
2341: PUSH
2342: LD_INT 1
2344: ST_TO_ADDR
// hc_skills = [ 7 , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
2345: LD_ADDR_OWVAR 31
2349: PUSH
2350: LD_INT 7
2352: PUSH
2353: LD_INT 0
2355: PPUSH
2356: LD_INT 5
2358: PPUSH
2359: CALL_OW 12
2363: PUSH
2364: LD_INT 0
2366: PPUSH
2367: LD_INT 5
2369: PPUSH
2370: CALL_OW 12
2374: PUSH
2375: LD_INT 0
2377: PPUSH
2378: LD_INT 5
2380: PPUSH
2381: CALL_OW 12
2385: PUSH
2386: EMPTY
2387: LIST
2388: LIST
2389: LIST
2390: LIST
2391: ST_TO_ADDR
// saperMAN = CreateHuman ;
2392: LD_ADDR_EXP 5
2396: PUSH
2397: CALL_OW 44
2401: ST_TO_ADDR
// PlaceHumanInUnit ( saperMAN , ve ) ;
2402: LD_EXP 5
2406: PPUSH
2407: LD_VAR 0 2
2411: PPUSH
2412: CALL_OW 52
// ComMoveXY ( saperMAN , 68 , 38 ) ;
2416: LD_EXP 5
2420: PPUSH
2421: LD_INT 68
2423: PPUSH
2424: LD_INT 38
2426: PPUSH
2427: CALL_OW 111
// end ;
2431: LD_VAR 0 1
2435: RET
// every 0 0$01 do
2436: GO 2438
2438: DISABLE
// begin hc_class = 1 ;
2439: LD_ADDR_OWVAR 28
2443: PUSH
2444: LD_INT 1
2446: ST_TO_ADDR
// uc_side = 1 ;
2447: LD_ADDR_OWVAR 20
2451: PUSH
2452: LD_INT 1
2454: ST_TO_ADDR
// uc_nation = 1 ;
2455: LD_ADDR_OWVAR 21
2459: PUSH
2460: LD_INT 1
2462: ST_TO_ADDR
// GEN := CreateCharacter ( GEN ) ;
2463: LD_ADDR_EXP 4
2467: PUSH
2468: LD_STRING GEN
2470: PPUSH
2471: CALL_OW 34
2475: ST_TO_ADDR
// end ; end_of_file
2476: END
// export UnitOverlay1 , UnitOverlay2 , DontEnter ; every 0 0$01 do
2477: GO 2479
2479: DISABLE
// begin enable ;
2480: ENABLE
// UnitOverlay1 = FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] , [ f_inarea , AreaExplosion ] ] ) ^ FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_human ] , [ f_inarea , AreaExplosion ] ] ) ;
2481: LD_ADDR_EXP 6
2485: PUSH
2486: LD_INT 22
2488: PUSH
2489: LD_INT 4
2491: PUSH
2492: EMPTY
2493: LIST
2494: LIST
2495: PUSH
2496: LD_INT 21
2498: PUSH
2499: LD_INT 2
2501: PUSH
2502: EMPTY
2503: LIST
2504: LIST
2505: PUSH
2506: LD_INT 33
2508: PUSH
2509: LD_INT 3
2511: PUSH
2512: EMPTY
2513: LIST
2514: LIST
2515: PUSH
2516: LD_INT 95
2518: PUSH
2519: LD_INT 5
2521: PUSH
2522: EMPTY
2523: LIST
2524: LIST
2525: PUSH
2526: EMPTY
2527: LIST
2528: LIST
2529: LIST
2530: LIST
2531: PPUSH
2532: CALL_OW 69
2536: PUSH
2537: LD_INT 22
2539: PUSH
2540: LD_INT 4
2542: PUSH
2543: EMPTY
2544: LIST
2545: LIST
2546: PUSH
2547: LD_INT 21
2549: PUSH
2550: LD_INT 1
2552: PUSH
2553: EMPTY
2554: LIST
2555: LIST
2556: PUSH
2557: LD_INT 95
2559: PUSH
2560: LD_INT 5
2562: PUSH
2563: EMPTY
2564: LIST
2565: LIST
2566: PUSH
2567: EMPTY
2568: LIST
2569: LIST
2570: LIST
2571: PPUSH
2572: CALL_OW 69
2576: ADD
2577: ST_TO_ADDR
// ; UnitOverlay2 = FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_human ] , [ f_inarea , AreaExplosionDisabled ] ] ) ;
2578: LD_ADDR_EXP 7
2582: PUSH
2583: LD_INT 22
2585: PUSH
2586: LD_INT 4
2588: PUSH
2589: EMPTY
2590: LIST
2591: LIST
2592: PUSH
2593: LD_INT 21
2595: PUSH
2596: LD_INT 1
2598: PUSH
2599: EMPTY
2600: LIST
2601: LIST
2602: PUSH
2603: LD_INT 95
2605: PUSH
2606: LD_INT 6
2608: PUSH
2609: EMPTY
2610: LIST
2611: LIST
2612: PUSH
2613: EMPTY
2614: LIST
2615: LIST
2616: LIST
2617: PPUSH
2618: CALL_OW 69
2622: ST_TO_ADDR
// if UnitOverlay1 >= 1 then
2623: LD_EXP 6
2627: PUSH
2628: LD_INT 1
2630: GREATEREQUAL
2631: IFFALSE 2675
// begin MineExplosion ( GetX ( UnitOverlay1 [ 1 ] ) , GetY ( Unitoverlay1 [ 1 ] ) , 1000 ) ;
2633: LD_EXP 6
2637: PUSH
2638: LD_INT 1
2640: ARRAY
2641: PPUSH
2642: CALL_OW 250
2646: PPUSH
2647: LD_EXP 6
2651: PUSH
2652: LD_INT 1
2654: ARRAY
2655: PPUSH
2656: CALL_OW 251
2660: PPUSH
2661: LD_INT 1000
2663: PPUSH
2664: CALL_OW 453
// wait ( 0 0$01 ) ;
2668: LD_INT 35
2670: PPUSH
2671: CALL_OW 67
// end ; if UnitOverlay2 >= 1 and DontEnter = true then
2675: LD_EXP 7
2679: PUSH
2680: LD_INT 1
2682: GREATEREQUAL
2683: PUSH
2684: LD_EXP 8
2688: PUSH
2689: LD_INT 1
2691: EQUAL
2692: AND
2693: IFFALSE 2737
// begin MineExplosion ( GetX ( UnitOverlay2 [ 1 ] ) , GetY ( UnitOverlay2 [ 1 ] ) , 1000 ) ;
2695: LD_EXP 7
2699: PUSH
2700: LD_INT 1
2702: ARRAY
2703: PPUSH
2704: CALL_OW 250
2708: PPUSH
2709: LD_EXP 7
2713: PUSH
2714: LD_INT 1
2716: ARRAY
2717: PPUSH
2718: CALL_OW 251
2722: PPUSH
2723: LD_INT 1000
2725: PPUSH
2726: CALL_OW 453
// wait ( 0 0$01 ) ;
2730: LD_INT 35
2732: PPUSH
2733: CALL_OW 67
// end ; end ; end_of_file
2737: END
// export Ataki ; export function Atakowanie1 ; var l , y , un , ve , LevelS ; begin
2738: LD_INT 0
2740: PPUSH
2741: PPUSH
2742: PPUSH
2743: PPUSH
2744: PPUSH
2745: PPUSH
// LevelS = [ 5 , 6 , 6 ] [ Difficulty ] ;
2746: LD_ADDR_VAR 0 6
2750: PUSH
2751: LD_INT 5
2753: PUSH
2754: LD_INT 6
2756: PUSH
2757: LD_INT 6
2759: PUSH
2760: EMPTY
2761: LIST
2762: LIST
2763: LIST
2764: PUSH
2765: LD_OWVAR 67
2769: ARRAY
2770: ST_TO_ADDR
// l = 0 ;
2771: LD_ADDR_VAR 0 2
2775: PUSH
2776: LD_INT 0
2778: ST_TO_ADDR
// repeat RandPos ;
2779: CALL 3196 0 0
// hc_class = 1 ;
2783: LD_ADDR_OWVAR 28
2787: PUSH
2788: LD_INT 1
2790: ST_TO_ADDR
// hc_name =  ;
2791: LD_ADDR_OWVAR 26
2795: PUSH
2796: LD_STRING 
2798: ST_TO_ADDR
// uc_side = 2 ;
2799: LD_ADDR_OWVAR 20
2803: PUSH
2804: LD_INT 2
2806: ST_TO_ADDR
// uc_nation = 2 ;
2807: LD_ADDR_OWVAR 21
2811: PUSH
2812: LD_INT 2
2814: ST_TO_ADDR
// hc_gallery =  ;
2815: LD_ADDR_OWVAR 33
2819: PUSH
2820: LD_STRING 
2822: ST_TO_ADDR
// hc_sex = sex_male ;
2823: LD_ADDR_OWVAR 27
2827: PUSH
2828: LD_INT 1
2830: ST_TO_ADDR
// hc_skills = [ LevelS , Rand ( 2 , 4 ) , Rand ( 0 , 4 ) , Rand ( 0 , 2 ) ] ;
2831: LD_ADDR_OWVAR 31
2835: PUSH
2836: LD_VAR 0 6
2840: PUSH
2841: LD_INT 2
2843: PPUSH
2844: LD_INT 4
2846: PPUSH
2847: CALL_OW 12
2851: PUSH
2852: LD_INT 0
2854: PPUSH
2855: LD_INT 4
2857: PPUSH
2858: CALL_OW 12
2862: PUSH
2863: LD_INT 0
2865: PPUSH
2866: LD_INT 2
2868: PPUSH
2869: CALL_OW 12
2873: PUSH
2874: EMPTY
2875: LIST
2876: LIST
2877: LIST
2878: LIST
2879: ST_TO_ADDR
// un = CreateHuman ;
2880: LD_ADDR_VAR 0 4
2884: PUSH
2885: CALL_OW 44
2889: ST_TO_ADDR
// PlaceUnitArea ( un , spawnarea , false ) ;
2890: LD_VAR 0 4
2894: PPUSH
2895: LD_EXP 10
2899: PPUSH
2900: LD_INT 0
2902: PPUSH
2903: CALL_OW 49
// l = l + 1 ;
2907: LD_ADDR_VAR 0 2
2911: PUSH
2912: LD_VAR 0 2
2916: PUSH
2917: LD_INT 1
2919: PLUS
2920: ST_TO_ADDR
// ComAgressiveMove ( un , 81 , 62 ) ;
2921: LD_VAR 0 4
2925: PPUSH
2926: LD_INT 81
2928: PPUSH
2929: LD_INT 62
2931: PPUSH
2932: CALL_OW 114
// wait ( 0 0$01.5 ) ;
2936: LD_INT 52
2938: PPUSH
2939: CALL_OW 67
// until l = [ 6 , 8 , 9 ] [ Difficulty ] ;
2943: LD_VAR 0 2
2947: PUSH
2948: LD_INT 6
2950: PUSH
2951: LD_INT 8
2953: PUSH
2954: LD_INT 9
2956: PUSH
2957: EMPTY
2958: LIST
2959: LIST
2960: LIST
2961: PUSH
2962: LD_OWVAR 67
2966: ARRAY
2967: EQUAL
2968: IFFALSE 2779
// end ;
2970: LD_VAR 0 1
2974: RET
// export function Atakowanie2 ; var x , y , un , ve , LevelS ; begin
2975: LD_INT 0
2977: PPUSH
2978: PPUSH
2979: PPUSH
2980: PPUSH
2981: PPUSH
2982: PPUSH
// x = 0 ;
2983: LD_ADDR_VAR 0 2
2987: PUSH
2988: LD_INT 0
2990: ST_TO_ADDR
// repeat RandPos ;
2991: CALL 3196 0 0
// if Difficulty = 1 then
2995: LD_OWVAR 67
2999: PUSH
3000: LD_INT 1
3002: EQUAL
3003: IFFALSE 3015
// begin vc_chassis = ru_medium_wheeled ;
3005: LD_ADDR_OWVAR 37
3009: PUSH
3010: LD_INT 21
3012: ST_TO_ADDR
// end else
3013: GO 3053
// if Difficulty = 2 then
3015: LD_OWVAR 67
3019: PUSH
3020: LD_INT 2
3022: EQUAL
3023: IFFALSE 3035
// begin vc_chassis = ru_medium_tracked ;
3025: LD_ADDR_OWVAR 37
3029: PUSH
3030: LD_INT 22
3032: ST_TO_ADDR
// end else
3033: GO 3053
// if Difficulty = 3 then
3035: LD_OWVAR 67
3039: PUSH
3040: LD_INT 3
3042: EQUAL
3043: IFFALSE 3053
// begin vc_chassis = ru_heavy_wheeled ;
3045: LD_ADDR_OWVAR 37
3049: PUSH
3050: LD_INT 23
3052: ST_TO_ADDR
// end ; if x = 1 then
3053: LD_VAR 0 2
3057: PUSH
3058: LD_INT 1
3060: EQUAL
3061: IFFALSE 3073
// begin vc_weapon = ru_gatling_gun ;
3063: LD_ADDR_OWVAR 40
3067: PUSH
3068: LD_INT 43
3070: ST_TO_ADDR
// end else
3071: GO 3081
// begin vc_weapon = ru_gun ;
3073: LD_ADDR_OWVAR 40
3077: PUSH
3078: LD_INT 44
3080: ST_TO_ADDR
// end ; vc_engine = engine_combustion ;
3081: LD_ADDR_OWVAR 39
3085: PUSH
3086: LD_INT 1
3088: ST_TO_ADDR
// vc_control = control_computer ;
3089: LD_ADDR_OWVAR 38
3093: PUSH
3094: LD_INT 3
3096: ST_TO_ADDR
// ve = CreateVehicle ;
3097: LD_ADDR_VAR 0 5
3101: PUSH
3102: CALL_OW 45
3106: ST_TO_ADDR
// PlaceUnitArea ( ve , spawnarea , false ) ;
3107: LD_VAR 0 5
3111: PPUSH
3112: LD_EXP 10
3116: PPUSH
3117: LD_INT 0
3119: PPUSH
3120: CALL_OW 49
// ComAgressiveMove ( ve , 81 , 62 ) ;
3124: LD_VAR 0 5
3128: PPUSH
3129: LD_INT 81
3131: PPUSH
3132: LD_INT 62
3134: PPUSH
3135: CALL_OW 114
// x = x + 1 ;
3139: LD_ADDR_VAR 0 2
3143: PUSH
3144: LD_VAR 0 2
3148: PUSH
3149: LD_INT 1
3151: PLUS
3152: ST_TO_ADDR
// RandPos ;
3153: CALL 3196 0 0
// wait ( 0 0$04 ) ;
3157: LD_INT 140
3159: PPUSH
3160: CALL_OW 67
// until x = [ 1 , 2 , 2 ] [ Difficulty ] ;
3164: LD_VAR 0 2
3168: PUSH
3169: LD_INT 1
3171: PUSH
3172: LD_INT 2
3174: PUSH
3175: LD_INT 2
3177: PUSH
3178: EMPTY
3179: LIST
3180: LIST
3181: LIST
3182: PUSH
3183: LD_OWVAR 67
3187: ARRAY
3188: EQUAL
3189: IFFALSE 2991
// end ;
3191: LD_VAR 0 1
3195: RET
// export spawnarea ; export function RandPos ; begin
3196: LD_INT 0
3198: PPUSH
// Randomize ;
3199: CALL_OW 10
// case Rand ( 1 , 8 ) of 1 :
3203: LD_INT 1
3205: PPUSH
3206: LD_INT 8
3208: PPUSH
3209: CALL_OW 12
3213: PUSH
3214: LD_INT 1
3216: DOUBLE
3217: EQUAL
3218: IFTRUE 3222
3220: GO 3233
3222: POP
// begin spawnarea = ARRightPos1 ;
3223: LD_ADDR_EXP 10
3227: PUSH
3228: LD_INT 7
3230: ST_TO_ADDR
// end ; 2 :
3231: GO 3367
3233: LD_INT 2
3235: DOUBLE
3236: EQUAL
3237: IFTRUE 3241
3239: GO 3252
3241: POP
// begin spawnarea = ARLeftPos1 ;
3242: LD_ADDR_EXP 10
3246: PUSH
3247: LD_INT 11
3249: ST_TO_ADDR
// end ; 3 :
3250: GO 3367
3252: LD_INT 3
3254: DOUBLE
3255: EQUAL
3256: IFTRUE 3260
3258: GO 3271
3260: POP
// begin spawnarea = ArUpPos1 ;
3261: LD_ADDR_EXP 10
3265: PUSH
3266: LD_INT 10
3268: ST_TO_ADDR
// end ; 4 :
3269: GO 3367
3271: LD_INT 4
3273: DOUBLE
3274: EQUAL
3275: IFTRUE 3279
3277: GO 3290
3279: POP
// begin spawnarea = ARRightPos3 ;
3280: LD_ADDR_EXP 10
3284: PUSH
3285: LD_INT 9
3287: ST_TO_ADDR
// end ; 5 :
3288: GO 3367
3290: LD_INT 5
3292: DOUBLE
3293: EQUAL
3294: IFTRUE 3298
3296: GO 3309
3298: POP
// begin spawnarea = ArLeftPos4 ;
3299: LD_ADDR_EXP 10
3303: PUSH
3304: LD_INT 14
3306: ST_TO_ADDR
// end ; 6 :
3307: GO 3367
3309: LD_INT 6
3311: DOUBLE
3312: EQUAL
3313: IFTRUE 3317
3315: GO 3328
3317: POP
// begin spawnarea = ArRightPos2 ;
3318: LD_ADDR_EXP 10
3322: PUSH
3323: LD_INT 8
3325: ST_TO_ADDR
// end ; 7 :
3326: GO 3367
3328: LD_INT 7
3330: DOUBLE
3331: EQUAL
3332: IFTRUE 3336
3334: GO 3347
3336: POP
// begin spawnarea = ArLeftPos2 ;
3337: LD_ADDR_EXP 10
3341: PUSH
3342: LD_INT 12
3344: ST_TO_ADDR
// end ; 8 :
3345: GO 3367
3347: LD_INT 8
3349: DOUBLE
3350: EQUAL
3351: IFTRUE 3355
3353: GO 3366
3355: POP
// begin spawnarea = ArLeftPos3 ;
3356: LD_ADDR_EXP 10
3360: PUSH
3361: LD_INT 13
3363: ST_TO_ADDR
// end ; end ;
3364: GO 3367
3366: POP
// end ; end_of_file
3367: LD_VAR 0 1
3371: RET
// export Center ; every 0 0$01 trigger Center = 1 do
3372: LD_EXP 11
3376: PUSH
3377: LD_INT 1
3379: EQUAL
3380: IFFALSE 3395
3382: GO 3384
3384: DISABLE
// begin enable ;
3385: ENABLE
// CenterOnUnits ( Nefarem ) ;
3386: LD_EXP 3
3390: PPUSH
3391: CALL_OW 85
// end ; end_of_file
3395: END
// export LostCheck ; every 0 0$02 trigger LostCheck = true do
3396: LD_EXP 12
3400: PUSH
3401: LD_INT 1
3403: EQUAL
3404: IFFALSE 3482
3406: GO 3408
3408: DISABLE
// begin enable ;
3409: ENABLE
// if IsDead ( Nefarem ) then
3410: LD_EXP 3
3414: PPUSH
3415: CALL_OW 301
3419: IFFALSE 3430
// begin YouLost ( Nef ) ;
3421: LD_STRING Nef
3423: PPUSH
3424: CALL_OW 104
// end else
3428: GO 3482
// if FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] ] ) < 2 then
3430: LD_INT 22
3432: PUSH
3433: LD_INT 1
3435: PUSH
3436: EMPTY
3437: LIST
3438: LIST
3439: PUSH
3440: LD_INT 21
3442: PUSH
3443: LD_INT 2
3445: PUSH
3446: EMPTY
3447: LIST
3448: LIST
3449: PUSH
3450: LD_INT 33
3452: PUSH
3453: LD_INT 3
3455: PUSH
3456: EMPTY
3457: LIST
3458: LIST
3459: PUSH
3460: EMPTY
3461: LIST
3462: LIST
3463: LIST
3464: PPUSH
3465: CALL_OW 69
3469: PUSH
3470: LD_INT 2
3472: LESS
3473: IFFALSE 3482
// begin YouLost ( pojazdyded ) ;
3475: LD_STRING pojazdyded
3477: PPUSH
3478: CALL_OW 104
// end ; end ; end_of_file
3482: END
// every 0 0$01 do
3483: GO 3485
3485: DISABLE
// begin case Difficulty of 1 :
3486: LD_OWVAR 67
3490: PUSH
3491: LD_INT 1
3493: DOUBLE
3494: EQUAL
3495: IFTRUE 3499
3497: GO 3528
3499: POP
// begin SetTech ( 57 , 2 , state_Researched ) ;
3500: LD_INT 57
3502: PPUSH
3503: LD_INT 2
3505: PPUSH
3506: LD_INT 2
3508: PPUSH
3509: CALL_OW 322
// SetTech ( 51 , 2 , state_Researched ) ;
3513: LD_INT 51
3515: PPUSH
3516: LD_INT 2
3518: PPUSH
3519: LD_INT 2
3521: PPUSH
3522: CALL_OW 322
// end ; 2 :
3526: GO 3642
3528: LD_INT 2
3530: DOUBLE
3531: EQUAL
3532: IFTRUE 3536
3534: GO 3578
3536: POP
// begin SetTech ( 57 , 2 , state_Researched ) ;
3537: LD_INT 57
3539: PPUSH
3540: LD_INT 2
3542: PPUSH
3543: LD_INT 2
3545: PPUSH
3546: CALL_OW 322
// SetTech ( 51 , 2 , state_Researched ) ;
3550: LD_INT 51
3552: PPUSH
3553: LD_INT 2
3555: PPUSH
3556: LD_INT 2
3558: PPUSH
3559: CALL_OW 322
// SetTech ( 52 , 2 , state_Researched ) ;
3563: LD_INT 52
3565: PPUSH
3566: LD_INT 2
3568: PPUSH
3569: LD_INT 2
3571: PPUSH
3572: CALL_OW 322
// end ; 3 :
3576: GO 3642
3578: LD_INT 3
3580: DOUBLE
3581: EQUAL
3582: IFTRUE 3586
3584: GO 3641
3586: POP
// begin SetTech ( 57 , 2 , state_Researched ) ;
3587: LD_INT 57
3589: PPUSH
3590: LD_INT 2
3592: PPUSH
3593: LD_INT 2
3595: PPUSH
3596: CALL_OW 322
// SetTech ( 58 , 2 , state_Researched ) ;
3600: LD_INT 58
3602: PPUSH
3603: LD_INT 2
3605: PPUSH
3606: LD_INT 2
3608: PPUSH
3609: CALL_OW 322
// SetTech ( 51 , 2 , state_Researched ) ;
3613: LD_INT 51
3615: PPUSH
3616: LD_INT 2
3618: PPUSH
3619: LD_INT 2
3621: PPUSH
3622: CALL_OW 322
// SetTech ( 52 , 2 , state_Researched ) ;
3626: LD_INT 52
3628: PPUSH
3629: LD_INT 2
3631: PPUSH
3632: LD_INT 2
3634: PPUSH
3635: CALL_OW 322
// end ; end ;
3639: GO 3642
3641: POP
// end ;
3642: END
